package com.pe.pgn.clubpgn.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.pe.pgn.clubpgn.dao.CategoriaDao;
import com.pe.pgn.clubpgn.domain.ClpbCategoria;
import com.pe.pgn.clubpgn.service.CategoriaService;
import com.pe.pgn.clubpgn.util.StringUtil;

@Service("categoriaService")
public class CategoriaServiceImpl extends GenericManagerImpl<ClpbCategoria, Long> implements
		CategoriaService {

	@Autowired
	private CategoriaDao categoriaDao;
	
	public List<Map<String, Object>> buscarCategorias(String deCategoria,
			String coCodigoCategoria, String stCategoria) {
		
		return categoriaDao.buscarCategorias(deCategoria, coCodigoCategoria, stCategoria);
	}
	
	public void eliminarCategoria(Long id) {
		
		categoriaDao.eliminarCategoria(id);
	}

	public void guardarCategoria(ClpbCategoria categoria) {
		
		String coCodigoCategoria = StringUtil.cleanCodeString(categoria.getCoCodigoCategoria());
		categoria.setCoCodigoCategoria(coCodigoCategoria);
		categoriaDao.guardarCategoria(categoria);
	}

	public ClpbCategoria obtenerCategoria(Long id) {
		
		return categoriaDao.obtenerCategoria(id);
	}

	public List<ClpbCategoria> obtenerCategorias() {
		
		return categoriaDao.obtenerCategorias();
	}

	public boolean esCodigoCategoriaRepetido(ClpbCategoria categoria) {
		return categoriaDao.esCodigoCategoriaRepetido(categoria);
	}

	public boolean esCategoriaConDependencias(Long id) {
		return categoriaDao.esCategoriaConDependencias(id);
	}

	public List<ClpbCategoria> obtenerTodoCategorias() {
		return categoriaDao.obtenerTodoCategorias();
	}

	
}
